home *** CD-ROM | disk | FTP | other *** search
/ Freaks Macintosh Archive / Freaks Macintosh Archive.bin / Freaks Macintosh Archives / Ham⁄GPS / SoftKiss.src.1.8 Folder / SoftKiss.src.1.8 / (unloved) / sfk_test_macmail.c < prev    next >
C/C++ Source or Header  |  1990-08-01  |  3KB  |  145 lines

  1. /*
  2.  * test mmc_macmail_glue
  3.  */
  4.  
  5. #include <stdio.h>
  6. #include <string.h>
  7.  
  8. #define NIL 0L
  9.  
  10. #include "mmc_core.h"
  11. #include "mmc_macmail.h"
  12. #include "mmc_drvr_find.h"
  13. #include "mmc_prep.h"
  14. #include "mmc_print_state.h"
  15.  
  16. struct {
  17.     int drvr_refnum;
  18.     int drvr_res_file;
  19. }gl;
  20.  
  21. #define fatal_error(xx_arg) {printf xx_arg;fflush(stdout);exit(0);}
  22. extern void exit(int);
  23.  
  24. char get_cmd(void);
  25. char get_cmd()
  26. {
  27.     char buf[100];
  28.     printf("mmc> ");
  29.     if(gets(buf)==NIL)
  30.         return 0;
  31.     return buf[0];
  32. }
  33.  
  34. void get_state(void);
  35. void get_state()
  36. {
  37.   mmc_state s;
  38.   int err=mmc_get_drvr_state(gl.drvr_refnum,&s);
  39.   printf("getstate error code = %d\n",err);
  40.   if(err!=0)
  41.       return;
  42.   mmc_print_state(&s);
  43. }
  44.  
  45. LDEF(void mmc_set_macmail(int on,char *name))
  46. {
  47.   int err;
  48.   mmc_state s;
  49.   mmc_invent_state(&s);
  50.   if(on)
  51.       TURN_ON_FLAGS(s,MCS_snooze);
  52.   memcpy(s.mmc_uname,name,sizeof(s.mmc_uname));
  53.   err=mmc_set_drvr_state(gl.drvr_refnum,&s,MMC_setmmuser);
  54.   mmc_print_state(&s);
  55.   printf("init error code = %d\n",err);
  56. }
  57.  
  58. LDEF(void gmmc_set_macmail(int on,char *name))
  59. {
  60.   char **cproc;
  61.   void (*gproc)();
  62.   long inhibit;
  63.   cproc=GetNamedResource('PROC',"\pMailCheckGlue");
  64.   if(cproc==0)
  65.     fatal_error(("can't get MailCheckGlue resource %d",ResError()));
  66.   if((*cproc)==0)
  67.     fatal_error(("Got a empty handle MailCheckGlue resource %d",ResError()));
  68.   HLock(cproc);
  69.   gproc=((void (*)())(*cproc));
  70.   inhibit=MMC_normal;
  71.   if(on)
  72.       inhibit=MMC_inhibit;
  73.   (*gproc)(inhibit,name);
  74.   HUnlock(cproc);
  75.   ReleaseResource(cproc);
  76.   get_state();
  77. }
  78.  
  79. void cmd_loop(void);
  80. void cmd_loop()
  81. {
  82.     while(TRUE) {
  83.         char ch=get_cmd();
  84.         switch(ch) {
  85.         case 'q':
  86.             return;
  87.         case 'g':
  88.             get_state();
  89.             break;
  90.         case '1':
  91.             mmc_set_macmail(TRUE,"\paw0g");
  92.             break;
  93.         case '2':
  94.             mmc_set_macmail(FALSE,"\paw0g");
  95.             break;
  96.         case '3':
  97.             mmc_set_macmail(TRUE,"\pjs5l");
  98.             break;
  99.         case '4':
  100.             mmc_set_macmail(FALSE,"\pjs5l");
  101.             break;
  102.          case 'a':
  103.             gmmc_set_macmail(TRUE,"\paw0g");
  104.             break;
  105.         case 'b':
  106.             gmmc_set_macmail(FALSE,"\paw0g");
  107.             break;
  108.         case 'c':
  109.             gmmc_set_macmail(TRUE,"\pjs5l");
  110.             break;
  111.         case 'd':
  112.             gmmc_set_macmail(FALSE,"\pjs5l");
  113.             break;
  114.         default:
  115.             printf("unrecignized command '%c'\n",ch);
  116.         }
  117.     }
  118. }
  119.  
  120. void open_res(void);
  121. void open_res()
  122. {
  123.   int res_file;
  124.   res_file=OpenResFile("\pmmc_macmail_glue.rsrc");
  125.   if(res_file== -1)        /*find the resource file?*/
  126.     fatal_error(("can't open resource file mmc_macmail_glue.rsrc file %d",ResError()));
  127.   UseResFile(res_file);
  128. }
  129.  
  130. void print_status(void);
  131. void print_status()
  132. {
  133.     int new_ref_num;
  134.     gl.drvr_refnum=mmc_drvr_find(MMC_name,&new_ref_num);
  135.     printf("found ref=%d new ref=%d\n",gl.drvr_refnum,new_ref_num);
  136. }
  137.  
  138. int main()
  139. {
  140.     printf("mmc macmail glue test client test jig built on %s %s\n",__DATE__,__TIME__);
  141.     print_status();
  142.     open_res();
  143.     cmd_loop();
  144. }
  145.